package com.example.proxytest.proxy.dynamicproxy.cglib;

import com.example.proxytest.proxy.PersonService;
import com.example.proxytest.proxy.PersonServiceImpl;
import com.example.proxytest.proxy.MyTransaction;

/* ━━━━━━佛祖保佑━━━━━━
 *                  ,;,,;
 *                ,;;'(    社
 *      __      ,;;' ' \   会
 *   /'  '\'~~'~' \ /'\.)  主
 * ,;(      )    /  |.     义
 *,;' \    /-.,,(   ) \    码
 *     ) /       ) / )|    农
 *     ||        ||  \)
 *     (_\       (_\
 * ━━━━━━永无BUG━━━━━━
 * @author ：zjq
 * @date ：2020/9/7 14:42
 * @description: TODO  cglib 实现： debug 启动 打印出来 和 直接run 是不一样的 直接run 的效果是正常的
 * @version: V1.0
 * @slogan: 天下风云出我辈，一入代码岁月催
 */
public class Main {

    public static void main(String[] args) {
        // 目标 对象
        Object target = new PersonServiceImpl();

        // 增强器
        MyTransaction myTransaction = new MyTransaction();

        PersonServiceInterceptor interceptor = new PersonServiceInterceptor(target, myTransaction);

        // 创建代理对象 cglib proxy
        PersonService personService = (PersonService) interceptor.createProxy();

        String returnValue = (String) personService.savePerson();
//        System.out.println(returnValue);

        System.out.println("================================");

        personService.updatePerson();


    }
}
